package cn.edu.xjtu.work.reverse;

/**
 * 整数反转
 * 
 * 给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。
 * 
 * 如果反转后整数超过 32 位的有符号整数的范围 [−2^31,  2^31 − 1] ，就返回 0。
 * 
 * 假设环境不允许存储 64 位整数（有符号或无符号）。
 */
public class Solution {
  public static void main(String[] args) {
    System.out.println(reverse(15342364));
  }

  public static int reverse(int x) {
    int ret = 0;
    while (x != 0) {
      int t = x % 10;
      int newRet = ret * 10 + t;
      if ((newRet - t) / 10 != ret) {
        return 0;
      }
      x = x / 10;
      ret = newRet;
    }
    return ret;
  }
}
